summaryrefslogtreecommitdiffstats
path: root/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
diff options
context:
space:
mode:
Diffstat (limited to 'src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt')
-rw-r--r--src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
new file mode 100644
index 000000000..36c479e6c
--- /dev/null
+++ b/src/android/app/src/main/java/org/yuzu/yuzu_emu/utils/DirectoryInitialization.kt
@@ -0,0 +1,37 @@
+// SPDX-FileCopyrightText: 2023 yuzu Emulator Project
+// SPDX-License-Identifier: GPL-2.0-or-later
+
+package org.yuzu.yuzu_emu.utils
+
+import android.content.Context
+import org.yuzu.yuzu_emu.NativeLibrary
+import java.io.IOException
+
+object DirectoryInitialization {
+ private var userPath: String? = null
+
+ var areDirectoriesReady: Boolean = false
+
+ fun start(context: Context) {
+ if (!areDirectoriesReady) {
+ initializeInternalStorage(context)
+ NativeLibrary.initializeEmulation()
+ areDirectoriesReady = true
+ }
+ }
+
+ val userDirectory: String?
+ get() {
+ check(areDirectoriesReady) { "Directory initialization is not ready!" }
+ return userPath
+ }
+
+ private fun initializeInternalStorage(context: Context) {
+ try {
+ userPath = context.getExternalFilesDir(null)!!.canonicalPath
+ NativeLibrary.setAppDirectory(userPath!!)
+ } catch (e: IOException) {
+ e.printStackTrace()
+ }
+ }
+}